// 测试:  分页器的使用
const laypage = layui.laypage
const layer = layui.layer
const form = layui.form
let queryData = { page: 1, pageSize: 2 }

getArticleList()

// * 1. 获取文章列表
function getArticleList() {
  // 发送网络请求
  $.get('https://zhi.zeng.pub/big-event/my/article/list', queryData).then((res) => {
    const { list, total, page, pageSize } = res.data
    // 处理时间格式
    list.forEach((item) => (item.create_time = formatTime(item.create_time)))

    // 将数据渲染到表格中
    $('tbody').html(template('list-tmp', { list }))
    // 渲染分页器
    laypage.render({
      // 容器名字
      elem: 'pager',
      // 总条数
      count: total,
      // 每页条数
      limit: pageSize,
      // 当前页
      curr: page,
      // 排版
      layout: ['prev', 'page', 'next', 'count', 'skip'],
      // 切换分页回调事件
      jump: function (obj, first) {
        const { curr, limit } = obj
        queryData.page = curr
        queryData.pageSize = limit
        if (!first) getArticleList()
      }
    })
  })
}

// * 2. 预览文章详情
$('tbody').on('click', '.preview-link', function () {
  // 查询当前文章详情信息
  const id = $(this).data('id')
  $.get('https://zhi.zeng.pub/big-event/my/article/' + id).then((res) => {
    if (res.code !== 200) return layer.msg('错误')
    res.data.create_time = formatTime(res.data.create_time)
    // 打开弹窗 并渲染文章内容
    layer.open({
      type: 1,
      area: ['80%', '90%'],
      title: '文章预览',
      content: template('preview-tmp', res)
    })
  })

})

// * 3. 获取文章分类
$.get('https://zhi.zeng.pub/big-event/my/article/cates').then(res => {
  // 将数据渲染到下拉框中
  $('select[name=cate_id]').append(template('cate-tmp', res))

  // 重新加载表单
  form.render()
})

// 搜索功能
$('.layui-form').on('submit', function() {
  // 获取下拉框的选项值
  const data = form.val('search-form')
  // 更改查询参数 【合并俩个对象】
  queryData = { ...queryData, ...data }
  // 查询数据
  getArticleList()
  return false
})

function formatTime(date) {
  const dt = new Date(date)

  var y = dt.getFullYear()
  var m = padZero(dt.getMonth() + 1)
  var d = padZero(dt.getDate())

  var hh = padZero(dt.getHours())
  var mm = padZero(dt.getMinutes())
  var ss = padZero(dt.getSeconds())

  return y + '-' + m + '-' + d + ' ' + hh + ':' + mm + ':' + ss

  // 定义补零的函数
  function padZero(n) {
    return n > 9 ? n : '0' + n
  }
}
